/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.isfd.domain.bomt;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;

/**
 * 原始装机清单明细Vo
 *
 * @author zhanghongyi
 * @date 2024/8/7 9:44
 * @description DetailOriginalBomVo
 */
@Data
public class IsfdDetailOriginalV2BomVo {
    /**
     * Id
     */
    private Long id;
    /**
     * 机型
     */
    @ExcelProperty(value = "所属型别")
    private String aircraftModel;
    /**
     * 跟踪Id（用于标记产出数据的业务流程Id）
     */

    private String track;
    /**
     * 子跟踪Id（用于标记产出的业务流程步骤）
     */
    private String subTrack;
    /**
     * 主分组类型
     */
    private String groupType;
    /**
     * 子分组类型
     */
    private String subGroupType;

    /**
     * 序号
     */
    @ExcelProperty(value = "序号")
    private String sequenceNo;
    /**
     * C919层次
     */
    @JsonIgnore
    @ExcelProperty(value = "层次")
    private String c919Level;
    /**
     * C929层次
     */
    @JsonIgnore
    @ExcelProperty(value = "层级")
    private String c929Level;

    /**
     * 获取层次
     * 兼容不同机型格式
     *
     * @return 层次
     */
    public String getLevel() {
        if(level != null){
            return level;
        } else {
            return null == c919Level ? c929Level : c919Level;
        }
    }

    /**
     * 主部段
     */
    @ExcelProperty(value = "主部段")
    private String mainSection;
    /**
     * 部段
     */
    @ExcelProperty(value = "部段")
    private String section;
    /**
     * ATA系统名称
     */
    @ExcelProperty(value = "ATA系统")
    private String ata;
    /**
     * C919零组件编号
     */
    @JsonIgnore
    @ExcelProperty(value = "零组件编号")
    private String c919Code;
    /**
     * C929零组件编号
     */
    @JsonIgnore
    @ExcelProperty(value = "图号")
    private String c929Code;

    /**
     * 获取零组件编号
     * 兼容不同机型格式
     *
     * @return 零组件编号
     * }
     */
    public String getCode() {
        if(code != null){
            return code;
        } else {
            return null == c919Code ? c929Code : c919Code;
        }
    }


    /**
     * 名称
     */
    @ExcelProperty(value = "名称")
    private String name;


    /**
     * 发布时间
     * */
    @ExcelProperty(value = "发布时间")
    private String releaseTime;


    /**
     * 版本
     */
    @ExcelProperty(value = "版本")
    private String version;
    /**
     * 状态
     */
    @ExcelProperty(value = "状态")
    private String status;
    /**
     * 数量
     */
    @ExcelProperty(value = "数量")
    private String cnt;
    /**
     * 单件重量（KG）
     */
    @ExcelProperty(value = "单件重量(KG)")
    private String weight;
    /**
     * 关重件
     */
    @ExcelProperty(value = "关重件")
    private String importance;
    /**
     * 零件类型
     */
    @ExcelProperty(value = "类型")
    private String type;
    /**
     * 架次有效性
     */
    @ExcelProperty(value = "架次有效性")
    private String flightRange;
    /**
     * 所属DCI编号
     */
    @ExcelProperty(value = "所属DCI编号")
    private String ownDciCode;

    /**
     *实际(颜色)件号
     */
    @ExcelProperty(value = "实际(颜色)件号")
    private String realCode;

    /**
     * 选项相关
     * */
    @ExcelProperty(value = "选项相关")
    private String optionRelated;


    /**
     * 执行有效性
     * */
    @ExcelProperty(value = "执行有效性")
    private String executionValidity;

    /**
     * 选项/选项组合编号
     * */
    @ExcelProperty(value = "选项/选项组合编号")
    private String optionGroupCode;

    /**
     * 是否为变形件原件
     */
    @ExcelProperty(value = "是否为变形件原件")
    private String transformBlock;


    /**
     * 工程代表评审号
     * */
    @ExcelProperty(value = "工程代表评审号")
    private String projectReviewCode;


    /**
     * 附注信息
     */
    @ExcelProperty(value = "附注信息")
    private String comment;
    /**
     * 快速更改单编号
     */
    @ExcelProperty(value = "快速更改单编号")
    private String quickModifiedBillCode;


    /**
     * 更改处置模块编号
     * */
    @ExcelProperty(value = "更改处置模块编号")
    private String changeDisposalModuleCode;
    /**
     * Ecp编号
     */
    @ExcelProperty(value = "ECP编号")
    private String ecpCode;
    /**
     * 供应商设备编号
     */
    @ExcelProperty(value = "供应商设备编号")
    private String supplierEquipCode;
    /**
     * 供应商版本号
     */
    @ExcelProperty(value = "供应商版本号")
    private String supplierVersion;
    /**
     * 供应商代号
     */
    @ExcelProperty(value = "供应商代号")
    private String supplierCode;
    /**
     * ESTI编号
     */
    @ExcelProperty(value = "ETSI编号")
    private String etsiCode;
    /**
     * ETSI版本
     */
    @ExcelProperty(value = "ETSI版本")
    private String etsiVersion;
    /**
     * ETSI备注
     */
    @ExcelProperty(value = "ETSI备注")
    private String etsiComment;

    /**
     * 材料牌号
     * */
    @ExcelProperty(value = "材料牌号")
    private String materialCode;

    /**
     * 材料规范
     * */
    @ExcelProperty(value = "材料规范")
    private String materialSpecification;


    /**
     * 毛料尺寸
     * */
    @ExcelProperty(value = "毛料尺寸")
    private String materialSize;

    /**
     * 毛料重量
     * */
    @ExcelProperty(value = "毛料重量")
    private String materialWeight;


    /**
     * 焊接定义
     * */
    @ExcelProperty(value = "焊接定义")
    private String weldingDefinition;


    /**
     * 加垫定义
     * */
    @ExcelProperty(value = "加垫定义")
    private String padDefinition;

    /**
     * 密封定义
     * */
    @ExcelProperty(value = "密封定义")
    private String sealDefinition;

    /**
     * 喷漆定义
     * */
    @ExcelProperty(value = "喷漆定义")
    private String paintDefinition;

    /**
     * 润滑定义
     * */
    @ExcelProperty(value = "润滑定义")
    private String lubricationDefinition;

    /**
     * 粘接定义
     * */
    @ExcelProperty(value = "粘接定义")
    private String glueDefinition;

    /**
     * 下级工程件
     * */
    @ExcelProperty(value = "下级工程件")
    private String subProject;

    /**
     * 全路径图号
     */
    private String fullCodePath;


    private String code;

    private String level;

    /**
     * 顺序
     */
    private Long ord;
}
